﻿#define _CRT_SECURE_NO_WARNINGS 1
/*【今日题目】：

请实现函数: int isPowerOfTwo(unsigned int n)。
该函数接收一个非负数n，请判断n是否为2的幂次方。
如果是返回真；否则返回假。为简单起见，不考虑n为负数的情况。
如果存在一个整数X使得x = 2^n，则认为n是2的幂次方。*/
#include <stdio.h>

int isPowerOfTwo(unsigned int n)
{
	if ((n & (n - 1)) == 0)
		return 1;
	else
		return 0;
}

int main()
{
	unsigned int n = 0;
	printf("请输入一个正整数: ");
	scanf("%d", &n);
	int c = isPowerOfTwo(n);
	if (c == 0)
	{
		printf("%d不是2的幂次方!\n", n);
	}
	else
	{
		printf("%d是2的幂次方!\n", n);
	}


	return 0;
}